package q1.project.modules.system.role.model;

import q1.project.common.enums.EnableStatusEnum;
import q1.project.core.base.PageQuery;

/**
 * @author Q1 Team
 */
public final class PermissionVm {
  private PermissionVm() {}

  @lombok.Data
  @lombok.EqualsAndHashCode(callSuper = true)
  public static class PermissionQuery extends PageQuery {
    private String keyword;
    private String permissionCode;
    private String permissionName;
    private String status;
    private String type; // Corresponds to 'module' in the entity
  }

  public record PermissionResponse(
      String id,
      String permissionCode,
      String permissionName,
      String description,
      String module,
      String resource,
      String action,
      EnableStatusEnum status) {}

  public record PermissionCreate(
      String id,
      String permissionCode,
      String permissionName,
      String description,
      String module,
      String resource,
      String action,
      EnableStatusEnum status) {}
}
